package com.ruoyi.foodworks.service;

import java.util.List;
import java.util.Map;
import com.ruoyi.foodworks.domain.Works;
import com.ruoyi.foodworks.domain.WorksStatsVO;

/**
 * 作品详情Service接口
 * 
 * @author lpt
 * @date 2025-08-12
 */
public interface WorksService
{
    List<WorksStatsVO> selectWorksWithStatsByAuthorId(Integer authorId);
    List<WorksStatsVO> selectAllWorksWithStats();
    /**
     * 查询作品详情
     * 
     * @param workId 作品详情主键
     * @return 作品详情
     */
    public Works selectWorksByWorkId(Integer workId);

    /**
     * 查询作品详情列表
     * 
     * @param works 作品详情
     * @return 作品详情集合
     */
    public List<Works> selectWorksList(Works works);

    /**
     * 新增作品详情
     * 
     * @param works 作品详情
     * @return 结果
     */
    public int insertWorks(Works works);

    /**
     * 修改作品详情
     * 
     * @param works 作品详情
     * @return 结果
     */
    public int updateWorks(Works works);

    /**
     * 批量删除作品详情
     * 
     * @param workIds 需要删除的作品详情主键集合
     * @return 结果
     */
    public int deleteWorksByWorkIds(Integer[] workIds);

    /**
     * 删除作品详情信息
     * 
     * @param workId 作品详情主键
     * @return 结果
     */
    public int deleteWorksByWorkId(Integer workId);

    /**
     * 处理用户互动评论积分流水
     * 
     * @param userId 用户ID
     * @return 处理结果
     */
    public Map<String, Object> processInteractionCommentPoint(Long userId);
    
    /**
     * 查询所有有效的积分规则（调试用）
     * 
     * @return 积分规则列表
     */
    public List<Map<String, Object>> selectAllValidPointRules();
    
    /**
     * 查询互动评论积分规则（调试用）
     * 
     * @return 积分规则
     */
    public Map<String, Object> selectInteractionCommentRule();
}
